home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / PCSSP.LZH / PC-SSP.ZIP / POLYOPS.ZIP / PSUB.FOR < prev    next >
Text File  |  1985-11-29  |  2KB  |  61 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE PSUB
  5. C
  6. C        PURPOSE
  7. C           SUBTRACT ONE POLYNOMIAL FROM ANOTHER
  8. C
  9. C        USAGE
  10. C           CALL PSUB(Z,IDIMZ,X,IDIMX,Y,IDIMY)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           Z     - VECTOR OF RESULTANT COEFFICIENTS, ORDERED FROM
  14. C                   SMALLEST TO LARGEST POWER
  15. C           IDIMZ - DIMENSION OF Z (CALCULATED)
  16. C           X     - VECTOR OF COEFFICIENTS FOR FIRST POLYNOMIAL, ORDERED
  17. C                   FROM SMALLEST TO LARGEST POWER
  18. C           IDIMX - DIMENSION OF X (DEGREE IS IDIMX-1)
  19. C           Y     - VECTOR OF COEFFICIENTS FOR SECOND POLYNOMIAL,
  20. C                   ORDERED FROM SMALLEST TO LARGEST POWER
  21. C           IDIMY - DIMENSION OF Y (DEGREE IS IDIMY-1)
  22. C
  23. C        REMARKS
  24. C           VECTOR Z MAY BE IN SAME LOCATION AS EITHER VECTOR X OR
  25. C           VECTOR Y ONLY IF THE DIMENSION OF THAT VECTOR IS NOT LESS
  26. C           THAN THE OTHER INPUT VECTOR
  27. C           THE RESULTANT POLYNOMIAL MAY HAVE TRAILING ZERO COEFFICIENTS
  28. C
  29. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  30. C           NONE
  31. C
  32. C        METHOD
  33. C           DIMENSION OF RESULTANT VECTOR IDIMZ IS CALCULATED AS THE
  34. C           LARGER OF THE TWO INPUT VECTOR DIMENSIONS. COEFFICIENTS IN
  35. C           VECTOR Y ARE THEN SUBTRACTED FROM CORRESPONDING COEFFICIENTS
  36. C           IN VECTOR X.
  37. C
  38. C     ..................................................................
  39. C
  40.       SUBROUTINE PSUB(Z,IDIMZ,X,IDIMX,Y,IDIMY)
  41.       DIMENSION Z(1),X(1),Y(1)
  42. C
  43. C     TEST DIMENSIONS OF SUMMANDS
  44. C
  45.       NDIM=IDIMX
  46.       IF (IDIMX-IDIMY) 10,20,20
  47.    10 NDIM=IDIMY
  48.    20 IF (NDIM) 90,90,30
  49.    30 DO 80 I=1,NDIM
  50.       IF (I-IDIMX) 40,40,60
  51.    40 IF (I-IDIMY) 50,50,70
  52.    50 Z(I)=X(I)-Y(I)
  53.       GO TO 80
  54.    60 Z(I)=-Y(I)
  55.       GO TO 80
  56.    70 Z(I)=X(I)
  57.    80 CONTINUE
  58.    90 IDIMZ=NDIM
  59.       RETURN
  60.       END
  61.